Skip to content

Interval Collections: Deprecate unnecessary and internal APIs #24792

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Jun 10, 2025

Conversation

anthony-murphy
Copy link
Contributor

@anthony-murphy anthony-murphy commented Jun 9, 2025

Deprecate unnecessary and internal APIs in ISequenceIntervalCollection and related interval types.

The following APIs are now deprecated and will be removed in a future release:

  • IInterval.clone
  • IInterval.modify
  • IInterval.union
  • ISerializableInterval
  • SequenceInterval.clone
  • SequenceInterval.modify
  • SequenceInterval.union
  • SequenceInterval.serialize
  • SequenceInterval.addPositionChangeListeners
  • SequenceInterval.removePositionChangeListeners

These APIs were never intended for public use. There is no migration path, and any usage is strongly discouraged, as it may result in severe errors or data corruption. Please remove any dependencies on these APIs as soon as possible.

@Copilot Copilot AI review requested due to automatic review settings June 9, 2025 18:29
@anthony-murphy anthony-murphy requested review from a team as code owners June 9, 2025 18:29
@github-actions github-actions bot added area: dds Issues related to distributed data structures area: dds: sharedstring changeset-present public api change Changes to a public API labels Jun 9, 2025
@anthony-murphy anthony-murphy added Feature_StagingMode and removed area: dds Issues related to distributed data structures area: dds: sharedstring public api change Changes to a public API changeset-present labels Jun 9, 2025
@github-actions github-actions bot added the base: main PRs targeted against main branch label Jun 9, 2025
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request deprecates several unnecessary and internal APIs in the interval collections to discourage external usage and prevent potential data corruption. Key changes include deprecation annotations in the SequenceInterval, IInterval, and related interfaces, updates to the API report documentation, and an accompanying changeset note.

Reviewed Changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/dds/sequence/src/intervals/sequenceInterval.ts Added deprecation annotations for clone, modify, addPositionChangeListeners, and removePositionChangeListeners.
packages/dds/sequence/src/intervals/intervalUtils.ts Added deprecation annotations for clone, modify, and serialize APIs.
packages/dds/sequence/src/intervalCollection.ts Added deprecation annotation for attachDeserializer.
packages/dds/sequence/api-report/sequence.legacy.alpha.api.md Updated documentation to reflect deprecation status of internal APIs.
.changeset/deep-geckos-listen.md Added changeset information for the deprecation update.
Comments suppressed due to low confidence (9)

packages/dds/sequence/src/intervals/sequenceInterval.ts:145

  • [nitpick] Consider capitalizing 'API' instead of 'api' for consistency and clarity in deprecation messages.
 * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release

packages/dds/sequence/src/intervals/sequenceInterval.ts:170

  • [nitpick] Consider capitalizing 'API' for clarity and consistency with documentation standards.
 * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release

packages/dds/sequence/src/intervals/sequenceInterval.ts:194

  • [nitpick] Consider using 'API' (uppercase) in the deprecation message to improve consistency with other references.
 * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release

packages/dds/sequence/src/intervals/sequenceInterval.ts:203

  • [nitpick] Consider capitalizing 'API' for consistency in deprecation messages.
 * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release

packages/dds/sequence/src/intervals/intervalUtils.ts:25

  • [nitpick] Consider using 'API' (uppercase) instead of 'api' to maintain consistent terminology.
 * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release

packages/dds/sequence/src/intervals/intervalUtils.ts:51

  • [nitpick] Consider capitalizing 'API' for consistency in the deprecation message.
 * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release

packages/dds/sequence/src/intervals/intervalUtils.ts:165

  • [nitpick] Consider replacing 'api' with 'API' for consistency with other deprecation messages.
 * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release

packages/dds/sequence/src/intervalCollection.ts:604

  • [nitpick] Consider capitalizing 'API' for consistency in the deprecation notice.
 * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release

packages/dds/sequence/api-report/sequence.legacy.alpha.api.md:35

  • [nitpick] Ensure that the deprecation note uses consistent terminology; consider capitalizing 'API' if that aligns with project style guidelines.
 // @deprecated (undocumented)

@github-actions github-actions bot added area: dds Issues related to distributed data structures area: dds: sharedstring changeset-present public api change Changes to a public API labels Jun 9, 2025
@github-actions github-actions bot added the area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct label Jun 9, 2025
@anthony-murphy anthony-murphy linked an issue Jun 9, 2025 that may be closed by this pull request
Co-authored-by: jzaffiro <110866475+jzaffiro@users.noreply.github.com>
@anthony-murphy anthony-murphy enabled auto-merge (squash) June 10, 2025 16:41
Copy link
Contributor

🔗 No broken links found! ✅

Your attention to detail is admirable.

linkcheck output


> fluid-framework-docs-site@0.0.0 ci:check-links /home/runner/work/FluidFramework/FluidFramework/docs
> start-server-and-test "npm run serve -- --no-open" 3000 check-links

1: starting server using command "npm run serve -- --no-open"
and when url "[ 'http://127.0.0.1:3000' ]" is responding with HTTP status code 200
running tests using command "npm run check-links"


> fluid-framework-docs-site@0.0.0 serve
> docusaurus serve --no-open

[SUCCESS] Serving "build" directory at: http://localhost:3000/

> fluid-framework-docs-site@0.0.0 check-links
> linkcheck http://localhost:3000 --skip-file skipped-urls.txt

Crawling...

Stats:
  222981 links
    1707 destination URLs
    1939 URLs ignored
       0 warnings
       0 errors


@anthony-murphy anthony-murphy merged commit 8acc591 into microsoft:main Jun 10, 2025
38 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: dds: sharedstring area: dds Issues related to distributed data structures area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct base: main PRs targeted against main branch changeset-present Feature_StagingMode public api change Changes to a public API
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Interval Collections: Remove unnecessary and internal APIs
4 participants